package com.xtoneict.auth.controller;
import com.xtoneict.util.result.Result;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Random;

@RestController
@RequestMapping("/auth/vcode")
public class VcodeController {
//    /**
//     * 生成验证码
//     * @param response
//     * @throws IOException
//     */
//    @GetMapping("/getVcode")
//    public Result createCaptcha(HttpServletResponse response, HttpSession session) throws IOException {
//        // 定义图形验证码的长和宽
//        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);
//        // 图形验证码写出，可以写出到文件，也可以写出到流
//        lineCaptcha.write(response.getOutputStream());
//        // getCode()可以获取到验证码的值
//        session.setAttribute("verifyCode",lineCaptcha.getCode());
//        // 关闭流
//        response.getOutputStream().close();
//        return Result.ok(lineCaptcha.getCode());
//    }
//
//
//    @RequestMapping("/verify")
//    public Result verify(HttpSession session, HttpServletResponse response, @RequestParam("inputCode") String inputCode){
//
//        response.setHeader("Access-Control-Allow-Credentials", "true");
//
//        if(inputCode == null){
//            System.out.printf("inputcode为空");
//        }
//        System.out.println(inputCode);
//        String code = (String) session.getAttribute("verifyCode");
//        System.out.println(code);
//        try {
//            if(!(inputCode.equals(code))){
//                return Result.fail("验证码错误");
//            }
//            return Result.ok();
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return Result.fail();
//    }

    @GetMapping("/getVcode")
    public Result generateCode(){
        Random vCode = new Random();                          //定义一个随机生成数技术，用来生成随机数
        //2，用String常用API-charAit生成验证码
        String yzm1 = "1234567890abcdefghijklmnopqrstuvwxwzABCDEFGHIJKLMNOPQRSTUVWXYZ";//定义一个String变量存放需要的数据，一共58位
        String yzm3 = "";//定义一个空的Atring变量用来接收生成的验证码
        for (int i = 0; i < 5; i++) {
            int a = vCode.nextInt(58);//随机生成0-57之间的数，提供索引位置
            yzm3 += yzm1.charAt(a);//用get 和提供的索引找到相应位置的数据给变量
        }
        System.out.println("用String常用API-charAit生成的验证码为:"+yzm3);

        return Result.ok(yzm3);
    }
}
